home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / var / lib / python-support / python2.6 / glchess / gtkui / log.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-04-20  |  4.4 KB  |  122 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. __author__ = 'Robert Ancell <bob27@users.sourceforge.net>'
  5. __license__ = 'GNU General Public License Version 2'
  6. __copyright__ = 'Copyright 2005-2006  Robert Ancell'
  7. import gtk
  8. import pango
  9. import gtkui
  10. import glchess.ui as glchess
  11.  
  12. class LogWindow:
  13.     '''
  14.     '''
  15.     notebook = None
  16.     defaultPage = None
  17.     pageCount = 0
  18.     
  19.     def __init__(self, notebook):
  20.         '''
  21.         '''
  22.         self.notebook = notebook
  23.         self.defaultPage = notebook.get_nth_page(0)
  24.  
  25.     
  26.     def addView(self, title, executable, description):
  27.         '''
  28.         '''
  29.         self.defaultPage.hide()
  30.         self.notebook.set_show_tabs(True)
  31.         self.pageCount += 1
  32.         return LogView(self, title, executable, description)
  33.  
  34.  
  35.  
  36. class LogView(glchess.ui.Log):
  37.     '''
  38.     '''
  39.     __gui = None
  40.     
  41.     def __init__(self, window, title, executable, description):
  42.         '''
  43.         '''
  44.         self.window = window
  45.         self._LogView__gui = gtkui.loadGladeFile('log.glade', 'log_table')
  46.         self._LogView__gui.get_widget('executable_label').set_text(executable)
  47.         self._LogView__gui.get_widget('game_label').set_text(description)
  48.         self.root = self._LogView__gui.get_widget('log_table')
  49.         notebook = window.notebook
  50.         notebook.append_page(self.root, gtk.Label(title))
  51.         buffer = self._LogView__gui.get_widget('comms_textview').get_buffer()
  52.         buffer.create_tag('input', family = 'Monospace')
  53.         buffer.create_tag('output', family = 'Monospace', weight = pango.WEIGHT_BOLD)
  54.         buffer.create_tag('move', family = 'Monospace', foreground = 'blue')
  55.         buffer.create_tag('info', family = 'Monospace', foreground = 'green')
  56.         buffer.create_tag('error', family = 'Monospace', foreground = 'red')
  57.         buffer.create_mark('end', buffer.get_end_iter())
  58.  
  59.     
  60.     def addBinary(self, data, style = None):
  61.         text = ''
  62.         while len(data) > 0:
  63.             bin = ''
  64.             ascii = ''
  65.             for i in xrange(8):
  66.                 
  67.                 try:
  68.                     c = data[i]
  69.                 except IndexError:
  70.                     bin += '   '
  71.                     ascii += ' '
  72.  
  73.                 o = ord(c)
  74.                 bin += '%02X ' % o
  75.                 if o >= 32 and o & 128 == 0:
  76.                     ascii += c
  77.                 else:
  78.                     ascii += '.'
  79.                 if i == 3:
  80.                     bin += ' '
  81.                     ascii += ' '
  82.                     continue
  83.             
  84.             data = data[8:]
  85.             text += '%s %s\n' % (bin, ascii)
  86.         self.addText(text, style)
  87.  
  88.     
  89.     def addText(self, text, style = None):
  90.         '''FIXME: Define style
  91.         '''
  92.         view = self._LogView__gui.get_widget('comms_textview')
  93.         scroll = self._LogView__gui.get_widget('comms_scrolled_window')
  94.         buffer = view.get_buffer()
  95.         mark = buffer.get_mark('end')
  96.         adj = scroll.get_vadjustment()
  97.         atBottom = adj.value >= adj.upper - adj.page_size
  98.         if style is None:
  99.             buffer.insert(buffer.get_iter_at_mark(mark), text)
  100.         else:
  101.             buffer.insert_with_tags_by_name(buffer.get_iter_at_mark(mark), text, style)
  102.         if atBottom:
  103.             view.scroll_mark_onscreen(mark)
  104.         
  105.  
  106.     
  107.     def addLine(self, text, style = None):
  108.         self.addText('\n' + text, style)
  109.  
  110.     
  111.     def close(self):
  112.         '''
  113.         '''
  114.         self.window.pageCount -= 1
  115.         self.window.notebook.remove_page(self.window.notebook.page_num(self.root))
  116.         if self.window.pageCount == 0:
  117.             self.window.defaultPage.show()
  118.             self.window.notebook.set_show_tabs(False)
  119.         
  120.  
  121.  
  122.